import java.util.Scanner;

public class Main{
	public static void main(String[] args){
		int sum = 0; //累加的和,初始化=0
		int n = 1;

		Scanner scanner = new Scanner(System.in);
		System.out.println("输入一个数字: ");
		int A = scanner.nextInt();

		while(n <= A){//循环条件是n<=100
			sum = sum + n; //把n累加到sum中
			n++; //n执行完后+1
		}
		System.out.println(sum); 


		//错误的while示范
		int sum = 0;
        int n = 1;
        while (n > 0) {
            sum = sum + n;
            n ++;
        }
        System.out.println(n); // -2147483648
        System.out.println(sum);
        //表面上看，上面的while循环是一个死循环，但是，Java的int类型有最大值，达到最大值后，再加1会变成负数，结果，意外退出了while循环。


        //使用while计算从m到n的和
        int sum = 0;
        int m = 20;
        int n = 100;

        //使用while计算M+...+N
        while(m <= n){
        	sum = sum + m;
        	m++;
        }
        System.out.println(sum);
	}
}


/*
while循环在每次循环开始前，首先判断条件是否成立。如果计算结果为true，就把循环体内的语句执行一遍，如果计算结果为false，那就直接跳到while循环的末尾，继续往下执行。

注意到while循环是先判断循环条件，再循环，因此，有可能一次循环都不做。

对于循环条件判断，以及自增变量的处理，要特别注意边界条件。

! 如果循环条件永远满足，那这个循环就变成了死循环。死循环将导致100%的CPU占用，用户会感觉电脑运行缓慢，所以要避免编写死循环代码。

如果循环条件的逻辑写得有问题，也会造成意料之外的结果




*/